// AI应用数据
const aiApplications = [
    {
        id: 1,
        title: "简洁版 Web 端", //应用名称
        description: "文心一言和智谱文心一言 API 一站式工具，支持多种功能", // 应用描述
        author: "AI-Hub", // 应用作者
        views: 1100, // 浏览量
        likes: 41, // 点赞量
        iconClass: "fas fa-language" // 应用图标类名
    },
    {
        id: 2,
        title: "周易对话",
        description: "周易大师在线帮你解析问题，提供生活和决策指导",
        author: "AI-Hub",
        views: 1300,
        likes: 1,
        iconClass: "fas fa-comment"
    },
    {
        id: 3,
        title: "深度搜索生成",
        description: "深度搜索和生成，基于互联网信息的文章生成应用",
        author: "AI-Hub",
        views: 794,
        likes: 7,
        iconClass: "fas fa-search"
    },
    {
        id: 4,
        title: "知识库问答",
        description: "知识大模型驱动的专业知识问答系统，支持自定义知识库",
        author: "AI-Hub",
        views: 871,
        likes: 1,
        iconClass: "fas fa-database"
    },
    {
        id: 5,
        title: "AI绘画工作流 | ComfyUI",
        description: "基于节点型Stable Diffusion，提供工作流定制和高度可扩展性",
        author: "AI-Hub",
        views: 15100,
        likes: 597,
        iconClass: "fas fa-paint-brush"
    },
    {
        id: 6,
        title: "办公神器 | PPT内容生成",
        description: "快速生成专业的PPT内容，支持Markdown格式",
        author: "AI-Hub",
        views: 7700,
        likes: 51,
        iconClass: "fas fa-file-powerpoint"
    },
    {
        id: 7,
        title: "AI绘画 | 50+Lora风格整合",
        description: "提供基于SD XL及SD3的多风格模型，支持多种绘画元素生成",
        author: "AI-Hub",
        views: 489300,
        likes: 648,
        iconClass: "fas fa-images"
    },
    {
        id: 8,
        title: "AI女友 | 哄哄模拟器",
        description: "智能聊天助手，提供情感陪伴和交流",
        author: "AI-Hub",
        views: 100000,
        likes: 2000,
        iconClass: "fas fa-robot"
    }
];

// 生成随机颜色
const getRandomColor = (seed) => {
    // 使用seed确保相同应用始终显示相同颜色
    const colors = ['#4CAF50', '#2196F3', '#FF9800', '#E91E63', '#9C27B0', '#673AB7', '#00BCD4', '#FF5722'];
    const index = seed % colors.length;
    return colors[index];
};

// 格式化数字（如 15100 -> 15.1K）
const formatNumber = (num) => {
    if (num >= 10000) {
        return (num / 10000).toFixed(1) + 'W';
    } else if (num >= 1000) {
        return (num / 1000).toFixed(1) + 'K';
    }
    return num.toString();
};

// 添加工具数据
const aiTools = [
    {
        id: 101,
        title: "线条小狗文生图",
        description: "用于生成线条风格的可爱小狗的文生图工具",
        iconClass: "fas fa-dog",
        category: "ai"
    },
    {
        id: 102,
        title: "天气预报",
        description: "小米集团开发的天气预报服务",
        iconClass: "fas fa-cloud-sun",
        category: "featured"
    },
    {
        id: 103,
        title: "水科学研究助手",
        description: "根据与水科学领域相关的知识问答，提供文献检索服务",
        iconClass: "fas fa-water",
        category: "ai"
    },
    {
        id: 104,
        title: "文本翻译",
        description: "文本翻译是百度翻译提供的高质量内容处理技术",
        iconClass: "fas fa-language",
        category: "ai"
    },
    {
        id: 105,
        title: "短文本语音合成",
        description: "百度语音技术研发成果，基于TTS深度学习的ST-A",
        iconClass: "fas fa-volume-up",
        category: "ai"
    },
    {
        id: 106,
        title: "新年吉祥物文生图",
        description: "新年吉祥图文生图工具",
        iconClass: "fas fa-paint-brush",
        category: "ai"
    },
    {
        id: 107,
        title: "文生图",
        description: "文生图工具，能够将文本描述转换成图像，进行快速一键生成",
        iconClass: "fas fa-image",
        category: "ai"
    },
    {
        id: 108,
        title: "文本审核",
        description: "用于文本审核最适合的工具",
        iconClass: "fas fa-check-circle",
        category: "ai"
    }
];

// 修改生成卡片函数，支持不同类型的卡片
// 修改生成卡片函数，支持基于标题和描述的关键词分类
const generateCards = (type = 'apps', category = 'all') => {
    const appGrid = document.querySelector('.app-grid');
    if (!appGrid) return;
    
    // 清空现有内容
    appGrid.innerHTML = '';
    
    // 是否已登录（从HTML中的data属性获取）
    const isAuthenticated = document.documentElement.dataset.authenticated === 'true';
    
    // 根据类型选择数据源
    const data = type === 'apps' ? aiApplications : aiTools;
    
    // 根据分类筛选数据
    let filteredData;
    
    if (category === 'all') {
        // 全部：显示所有内容
        filteredData = data;
    } else {
        // 根据标题和描述的关键词进行分类
        filteredData = data.filter(item => {
            // 将标题和描述转换为小写以便匹配
            const titleLower = item.title.toLowerCase();
            const descriptionLower = item.description.toLowerCase();
            
            if (category === 'featured') {
                // 精选分类的关键词 - 为工具数据调整了关键词和条件
                const featuredKeywords = ['精选', '最佳', '推荐', '优质', '专业', '高级', '开发', '百度', '小米'];
                
                // 检查标题或描述是否包含精选关键词，或者数据中是否有category='featured'
                return featuredKeywords.some(keyword => 
                    titleLower.includes(keyword) || descriptionLower.includes(keyword)
                ) || (item.category && item.category === 'featured');
            } else if (category === 'ai') {
                // 人工智能分类的关键词（保持不变）
                const aiKeywords = ['ai', '人工智能', '智能', '大模型', '文生图', '语音合成', '自然语言处理', '深度学习'];
                
                // 检查标题或描述是否包含AI相关关键词，或者数据中是否有category='ai'
                return aiKeywords.some(keyword => 
                    titleLower.includes(keyword) || descriptionLower.includes(keyword)
                ) || (item.category && item.category === 'ai');
            }
            
            return false;
        });
    }
    
    // 生成卡片（剩余代码保持不变）
    filteredData.forEach(item => {
        const card = document.createElement('div');
        card.className = 'app-card';
        
        // 获取随机颜色
        const iconColor = getRandomColor(item.id);
        
        // 生成卡片内容
        card.innerHTML = `
            <div class="app-header">
                <div class="app-icon" style="background-color: ${iconColor}33;">
                    <i class="${item.iconClass}" style="color: ${iconColor};"></i>
                </div>
                <div class="app-info">
                    <h3 class="app-title">${item.title}</h3>
                </div>
            </div>
            <p class="app-description">${item.description}</p>
        `;
        
        // 如果是应用，添加作者和统计信息
        if (type === 'apps') {
            card.innerHTML += `
                <div class="app-meta">
                    <div class="app-author">${item.author}</div>
                    <div class="app-stats">
                        <div class="stat-item"><i class="fas fa-eye"></i> ${formatNumber(item.views)}</div>
                        <div class="stat-item"><i class="fas fa-thumbs-up"></i> ${formatNumber(item.likes)}</div>
                    </div>
                </div>
            `;
        }
        
        // 设置卡片的点击行为
        card.style.cursor = 'pointer';
        card.addEventListener('click', function() {
            if (isAuthenticated) {
                // 已登录用户，点击卡片进入应用/工具（这里先用#代替实际链接）
                window.location.href = '#';
            } else {
                // 未登录用户，跳转到登录页面，并添加redirect参数指向当前页面
                window.location.href = '/login?redirect=/ai-tools';
            }
        });
        
        appGrid.appendChild(card);
    });
};

// 设置标签页切换功能
const setupTabs = () => {
    const tabButtons = document.querySelectorAll('.tab-btn');
    if (!tabButtons.length) return;
    
    // 获取标题元素
    const pageTitle = document.querySelector('.app-center-header h2');
    
    let currentCategory = 'all';
    
    tabButtons.forEach(button => {
        button.addEventListener('click', function() {
            // 移除所有按钮的active类
            tabButtons.forEach(btn => btn.classList.remove('active'));
            // 为当前按钮添加active类
            this.classList.add('active');
            // 获取标签页类型
            const tabType = this.getAttribute('data-tab');
            
            // 根据标签页类型更新标题
            if (pageTitle) {
                pageTitle.textContent = tabType === 'apps' ? '应用中心' : '工具中心';
            }
            
            // 重新生成卡片
            generateCards(tabType, currentCategory);
        });
    });
    
    // 设置分类筛选功能
    const categoryTags = document.querySelectorAll('.category-tag');
    categoryTags.forEach(tag => {
        tag.addEventListener('click', function() {
            // 移除所有标签的active类
            categoryTags.forEach(t => t.classList.remove('active'));
            // 为当前标签添加active类
            this.classList.add('active');
            // 获取分类
            currentCategory = this.getAttribute('data-category');
            // 获取当前标签页类型
            const activeTab = document.querySelector('.tab-btn.active').getAttribute('data-tab');
            // 重新生成卡片
            generateCards(activeTab, currentCategory);
        });
    });
    
    return {
        setCategory: (category) => {
            currentCategory = category;
            const activeTab = document.querySelector('.tab-btn.active').getAttribute('data-tab');
            generateCards(activeTab, currentCategory);
        }
    };
};

// 修改搜索功能，使其与标签页和分类筛选配合
const setupSearch = () => {
    const searchInput = document.querySelector('.search-box input');
    if (!searchInput) return;
    
    // 获取或创建无结果提示元素
    let noResults提示 = document.querySelector('.no-results-message');
    if (!noResults提示) {
        noResults提示 = document.createElement('div');
        noResults提示.className = 'no-results-message';
        noResults提示.textContent = '没有找到匹配的应用';
        noResults提示.style.display = 'none';
        noResults提示.style.textAlign = 'center';
        noResults提示.style.padding = '40px 20px';
        noResults提示.style.color = '#999';
        const appGrid = document.querySelector('.app-grid');
        if (appGrid && appGrid.parentNode) {
            appGrid.parentNode.insertBefore(noResults提示, appGrid.nextSibling);
        }
    }
    
    // 防抖函数
    let searchTimeout;
    
    searchInput.addEventListener('input', function() {
        // 清除之前的定时器
        clearTimeout(searchTimeout);
        
        // 设置新的定时器，延迟300毫秒执行搜索
        searchTimeout = setTimeout(() => {
            const searchTerm = this.value.toLowerCase().trim();
            const appCards = document.querySelectorAll('.app-card');
            let hasResults = false;
            
            appCards.forEach(card => {
                const title = card.querySelector('.app-title').textContent.toLowerCase();
                const description = card.querySelector('.app-description').textContent.toLowerCase();
                const author = card.querySelector('.app-author') ? 
                    card.querySelector('.app-author').textContent.toLowerCase() : '';
                
                // 如果搜索词为空，或者标题、描述或作者中包含搜索词，则显示卡片
                if (searchTerm === '' || title.includes(searchTerm) || description.includes(searchTerm)) {
                    card.style.display = 'flex';
                    hasResults = true;
                } else {
                    card.style.display = 'none';
                }
            });
            
            // 根据是否有结果显示或隐藏无结果提示
            noResults提示.style.display = hasResults ? 'none' : 'block';
        }, 300);
    });
};


// 页面加载完成后初始化
document.addEventListener('DOMContentLoaded', function() {
    generateCards(); // 默认显示应用
    const tabsManager = setupTabs();
    setupSearch();
});